//  给定一个字符串 s ，请你找出其中不含有重复字符的 最长子串的长度
// 思路，滑动窗口
// left和right分别指向窗口的左右边界，保证窗口中没有重复元素，right指向当前字符，如果出现了重复
// 不断右移left，直到窗口没有重复元素，最后计算结果

function lengthOfLongestSubstring(s) {
    let left = 0
    let right = 0
    let map = {}
    let ans = 0
    while (right < s.length) {
        if (!map[s[right]]) {
            map[s[right]] = 1
        } else {
            map[s[right]] += 1
        }
        while (map[s[right]] > 1) {
            map[s[left]] -= 1
            left++
        }
        ans = Math.max(right - left + 1, ans)
        right++
    }
    return ans
}
let str = "abcaacbb"
console.log(lengthOfLongestSubstring(str))